Jump to content
  • 0

Как сделать не прямоугольную форму с одним фоном


bob_24
 Share

Question

Нужно сделать как на картинке:

874f95a344cet.jpg

т.е. у прямоугольной формы еще и треугольник внизу. Но проблема в том что фон для них один. Можно увидеть как темная полоса продолжается на треугольнике. И конечно это не фиксированной ширины.)

Подскажите, можно ли такое реализовать?

Link to comment
Share on other sites

Recommended Posts

  • 0

Не зная точных условий задачи могу предложить background-position: fixed; для обоих элементов.

Впрочем, можно думать и еще другие варианты, этот самый простой. Если не подойдет — пишите.

Link to comment
Share on other sites

  • 0

Не зная точных условий задачи могу предложить background-position: fixed; для обоих элементов.

Впрочем, можно думать и еще другие варианты, этот самый простой. Если не подойдет — пишите.

Дружище, а ты не мог бы перечислить всевозможные варианты решения этой задачи. Мне для себя, для опыта. Да и другим думаю будет интересно. :blush:

Link to comment
Share on other sites

  • 0

Первый раз слышу про background-position: fixed, может background-attachment: fixed? Но не совсем понимаю как оно мне поможет...

Что из точных условий нужно указать? например ссылка, с display:block. Текст может быть короткий или длинный и соответственно блок меняет ширину, а треугольник всегда по центру снизу, но фон должен быть один и для прямоугольника и для треугольника.

Link to comment
Share on other sites

  • 0

Да, аттачмент, конечно.

Поможет тем, что задаст единую точку начала позиционирования фона. Таким образом рисунок будет совпадать в разных элементах так, как будто узор тайлится на одном и том же элементе.

Из условий — то, можем ли мы себе позволить не скроллить фон в этом случае.

Link to comment
Share on other sites

  • 0

Про background-position: fixed; так и не смекнул, что за вариант. Но вот с трансформами вроде бы то что надо получается. Можно еще подумать :)

upd Одна поправочка. В моем случае надо еще иметь ввиду, что за фон под этим блоком. Если однородный, то no problem :)

Edited by Softlink
  • Like 1
Link to comment
Share on other sites

  • 0

Только несколько проще. Сделал фон с запасом по ширине. Добавил псевдоэлемент (сделать его треугольником не сложно). И для обоих элементов задал фон с позицией 50% 0

Ну это при условии, что треугольник известной ширины и стоит по центру. А это мне и надо

Link to comment
Share on other sites

  • 0

Только несколько проще. Сделал фон с запасом по ширине. Добавил псевдоэлемент (сделать его треугольником не сложно). И для обоих элементов задал фон с позицией 50% 0

А можно код посмотреть? Здесь, например http://jsfiddle.net/

Link to comment
Share on other sites

  • 0

Да, работает только с повторяющимся фоном. Вот такой сферический блок в вакууме. Но мне подходит. А как сделать что-то более сложно пока не знаю)

А вообще да, было бы интересно знать как это сделать)))

Edited by bob_24
Link to comment
Share on other sites

  • 0

Да, работает только с повторяющимся фоном. Вот такой сферический блок в вакууме. Но мне подходит. А как сделать что-то более сложно пока не знаю)

А вообще да, было бы интересно знать как это сделать)))

Ну такой вариант не подходит? http://jsfiddle.net/Softlink/hML5x/

Link to comment
Share on other sites

  • 0

Дружище, а ты не мог бы перечислить всевозможные варианты решения этой задачи. Мне для себя, для опыта. Да и другим думаю будет интересно. :blush:

Мне только один еще приходит в голову так сразу, но он потребует дополнительной картинки.

Вот как-то так: http://jsfiddle.net/xCc4M/

UPD: да-да, уже предложены прекрасные варианты :)

Link to comment
Share on other sites

  • 0

Softlink ну лично мне подходит, то что я написал. Твой вариант не подходит, потому что, как ты написал, фон должен быть однородным. Но все равно спасибо.

Можно наверное скрипт подключить, который бы брал высоту элемента и смещал фон у треугольника по y на минус эту высоту, но как то не очень это красиво.

Edited by bob_24
Link to comment
Share on other sites

  • 0

Softlink ну лично мне подходит, то что я написал. Твой вариант не подходит, потому что, как ты написал, фон должен быть однородным. Но все равно спасибо.

Можно наверное скрипт подключить, который бы брал высоту элемента и смещал фон у треугольника по y на минус эту высоту, но как то не очень это красиво.

Да, весомый недостаток, согласен. Можно попробовать вариант rash'а, только если блок не будет тянуться в ширину на очень много.

Я еще сейчас подумаю посижу, интересная задачка :)

Link to comment
Share on other sites

  • 0

Все дело в том, что мы никак не можем задать треугольнику фон. Потому что я знаю пока только два способа, как сделать треугольник в такой ситуации. В первом бэкграунд не присутствует в принципе, а во втором его не подогнать.

Link to comment
Share on other sites

  • 0

Если честно, то я что-то совсем забыл про то как делается треугольник и поэтому не учитывал невозможность добавить фон. Выходит, единственный способ сделать как надо возможен только тогда, когда однородный фон?

Edited by bob_24
Link to comment
Share on other sites

  • 0

Наверное как-то можно извернуться, но мне пока ничего не приходит в голову.

У нас задача сопоставить фон и стрелку. Ключевое слово - центр. Значит мы можем через background-position:center зафиксировать фон у блока и картинкой приклеить стрелку. Таким образом у нас они всегда будут совпадать. Но тут задача делится, т.к. нам надо делать тянущиеся блоки. Вариантов два:

1) зафигачить вообще большой фон блоку

2) сделать подложку под блок, повторяя фон и попробовать выровнять это все дело через тот же background-position

Умнее пока ничего не придумал.

Link to comment
Share on other sites

  • 0

Соорудили с Илюхой такой вариант, но походу дела в хроме не сочетается rotate с background-attachment: fixed( Может кто знает лекарство? Кажись где-то было, краем уха слышал :unsure:

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy